package com.ffzx.commerce.framework.utils;

import net.sourceforge.pinyin4j.PinyinHelper;

/**
 * 中文转拼音
 * 
 * @author liujunjun
 * @date 2016年5月7日 上午11:40:29
 * @version 1.0
 */
public class PinyinUtils {
	
	/**
	 * 中文转拼音
	 * @param target         转换内容
	 * @param isSimpleSpell		true简拼，false全拼
	 * @return
	 */
	public static String getSpell(String target, boolean isSimpleSpell) {
        char[] chars = target.toCharArray();
        StringBuffer spell = new StringBuffer();
        String[] pinyinStr;
        int endIndex;
        for (char ch : chars) {
            // 如果不是汉字
            if (ch <= 128) {
                spell.append(ch);
                continue;
            }
            pinyinStr = PinyinHelper.toHanyuPinyinStringArray(ch);
            // 过滤中文符号
            if (pinyinStr == null) {
                spell.append(ch);
                continue;
            }
            endIndex = isSimpleSpell ? 1 : pinyinStr[0].length() - 1;
            spell.append(pinyinStr[0].substring(0, endIndex));
        }
        return spell.toString();
    }
    
    public static String[] getSpellToArray(String target){
        char[] chars = target.toCharArray();
        String[] spell = new String[chars.length];
        String[] pinyinStr;
        for (int i = 0; i < chars.length; i++) {
            // 如果不是汉字
            if (chars[i] <= 128) {
                spell[i] = String.valueOf(chars[i]);
                continue;
            }
            pinyinStr = PinyinHelper.toHanyuPinyinStringArray(chars[i]);
            // 过滤中文符号
            if (pinyinStr == null) {
                spell[i] = String.valueOf(chars[i]);
                continue;
            }
            spell[i] = pinyinStr[0].substring(0, pinyinStr[0].length() - 1);
        }
        return spell;
    }
}
